<?php

App::uses('AppController', 'Controller');

class ContactsController extends AppController {

	var $name = 'Contacts';
	var $uses = array('Contact', 'Map');


	/**
	 *
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function index() {
		$this->set('contacts', $this->Contact->getAll());
		$this->set('map', $this->Map->read(null, 1));

		// Danh muc
        $this->set('categories', $this->Common->_getCategories());

		$view = new View( $this );
        $Text = $view->loadHelper( 'Text' );

		$contacs = $this->Contact->getAll();
		foreach($contacs as $k => $v){
			$v['Contact']['content'] = $Text->autoLink($v['Contact']['content'], array( 'target' => '_blank'));
			$contacs[$k] = $v;
		}
        $this->set('contacts', $contacs);
	}
	/**
	 * Contact
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function send()
	{
		if(!empty($this->request->data)) {

			$data = &$this->request->data['Contact'];

			$capcha = $this->Session->read('send-contact');

			$this->Contact->set($data);

			if($capcha != $data['captcha']) {
				$this->Contact->validationErrors['captcha'] = array('Mã xác nhận không đúng');
			}


			$errors = $this->Contact->invalidFields();

			if( empty($errors)) {
				$data['status'] = 0;
				unset($data['captcha']);

				if($this->Contact->save($data, false)) {

					$mail_data = array(
                        'data' => $data,
                        'to' => trim('nguyenphuc.nv@gmail.com'),
                        'subject' => $data['title'],
                        'type' => 'html',
                        'template' => 'contact'
                    );

                    $this->Common->send_mail($mail_data);

					$data = null;

					$this->Session->setFlash('Gửi mail thành công.', 'success');
				} else {
					$this->Session->setFlash('Gửi mail thất bại.', 'error');
				}
			} else {
				$this->Session->setFlash('Gửi mail thất bại.', 'error');
			}
		} else {

		}
	}

	/**
	 * Danh sach liên hệ
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function admin_index()
	{
		if(!empty($this->request->data)) {
			$data = &$this->request->data;

			$this->Map->save($data['Map']);

			$is_error = false;

			if(!empty($data['Contact']))
			foreach($data['Contact'] as $k => $c) {
				if(!empty($c['sort']) || !empty($c['name']) || !empty($c['content'])) {
					$this->Contact->set($c);
					$errors = $this->Contact->invalidFields();
					if(!empty($errors)) {
						$is_error = true;
						$data['Contact'][$k]['errors'] = $errors;
					} else {
						$this->Contact->create();
						$this->Contact->save($c);
					}
				} else {
					unset($data['Contact'][$k]);
				}
			}
			$data['Contact'] = array_values($data['Contact']);

			if(!$is_error) {
				unset($data['Contact']);
				$this->Session->setFlash('Cập nhật thông tin thành công.', 'success');
			} else {
				$this->Session->setFlash('Cập nhật thông tin thất bại.', 'error');
			}
		}
		$map = $this->Map->read(null, 1);
		$this->request->data['Map'] = $map['Map'];
		$this->set('contacts', $this->Contact->getAll());

		// thong tin hien thi cho trang
		$this->set('main_page_title', __('Liên hệ'));
        $this->set('main_page_description', __('Quản lý thông tin liên hệ'));

        $breadcrumb = array( array('name' => 'Liên hệ', 'url' => '') );
		$this->set('breadcrumb', $breadcrumb);
	}

	/**
	 * Edit
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function admin_edit() {
		if(!empty($this->request->data)) {
			$data = &$this->request->data;
			$this->Contact->set($data);

			$errors = $this->Contact->invalidFields();
			if(empty($errors)) {
				$data['id'] = (int)$data['id'];
				if($this->Contact->save($data, false)) {
					$this->_responseJson(array('code' => 'success', 'msg' => 'Cập nhật thông tin thành công'));
				} else {
					$this->_responseJson(array('code' => 'danger', 'msg' => 'Cập nhật thông tin thất bại'));
				}
			} else {
				$errors = $this->_getErrorForInvalidJson($errors);
				$this->_responseJson(array('code' => 'danger', 'msg' => 'Cập nhật thông tin thất bại', 'errors' => $errors));
			}
		} else {
			$this->_responseJson(array('code' => 'danger', 'msg' => 'Cập nhật thông tin thất bại. Dữ liệu không hợp lệ'));
		}
	}

	/**
	 * Delete
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function admin_delete(){
		if(!empty($this->request->data['id'])) {
			$data = &$this->request->data;
			$data['id'] = (int)$data['id'];
			if($this->Contact->delete($data['id'])) {
				$this->_responseJson(array('code' => 'success', 'msg' => 'Xóa thông tin thành công'));
			} else {
				$this->_responseJson(array('code' => 'danger', 'msg' => 'Xóa thông tin thất bại'));
			}
		} else {
			$this->_responseJson(array('code' => 'danger', 'msg' => 'Xóa thông tin thất bại. Dữ liệu không hợp lệ'));
		}
	}


	/**
	 * chang google map
	 *
	 * @param type  meta
	 * @return type  meta
	 * @access public
	 */
	function admin_location(){
		if(!empty($this->request->data)) {

			$this->request->data['id'] = 1;

			$this->Map->save($this->request->data);

			$this->_responseJson(array('code' => 'ok'));
		}
	}

}
